package tadp.tp.domain;

import java.util.ArrayList;
import java.util.Collection;

public class Agenda {
	
	private Reservable duenio;
	private Collection<HorarioDeReuniones> reuniones = new ArrayList<HorarioDeReuniones>();

	public Agenda (Reservable duenio){
		this.duenio = duenio;
	}
	
	public Double horasDeReunionesDentroDelRango(Fecha fechaReunion, int limite)
	{	Double acumulador = 0.0;																
		for(HorarioDeReuniones unHorario:this.reuniones)	
		{	
			if(unHorario.getFecha().fechaPerteneceAlLimite(fechaReunion, limite)){
				Double horaFinal = Double.parseDouble(unHorario.getHoraFin());
				Double horaInicial = Double.parseDouble(unHorario.getHoraComienzo());
				acumulador += horaFinal - horaInicial;
			}
		}return acumulador;
	}
	
	public Boolean estaDisponibleEntre(String horarioInicial,String horarioFinal, Fecha fecha) { 
		
		Boolean disponible = this.duenio.perteneceAlHorarioLaboral(horarioInicial, horarioFinal);

			for (HorarioDeReuniones unHorario : this.getReuniones()) 
			{			
				if (unHorario.estaOcupado(horarioInicial, horarioFinal, fecha))        
				{
					disponible = false;
					return disponible;
				}
			}
		return disponible;
	}

	public void agendarEntre(String horarioInicial, String horarioFinal,Fecha fecha) {
		this.reuniones.add(new HorarioDeReuniones(horarioInicial, horarioFinal, fecha));
	}
	
	public Collection<HorarioDeReuniones> getReuniones(){
		return this.reuniones;
	}

}
